<?php


namespace app\model;


class ZzListModel extends BaseModel
{

    public $table_name = 'zz_list';

    // 向数据库增加数据
    function addData($dataList){
        $create_time = date('Y-m-d');
        $number = 0;
        if(empty($dataList)) return $number;
        foreach ($dataList as $k=>$item){

            //从完整的数据中 取回重要的数据
            $increaseData = $this->getValidData($item,$create_time);

            //未上市 或者 已退市的直接过滤
            if(!$increaseData or $increaseData['ytm_rt'] == '-' or $increaseData['premium_rt'] == '-'){
                continue;
            }

            //对数据进行处理
            $this->handleIncreaseData($increaseData);

            //插入数据库
            if($z_id = $this->findValue(['bond_id'=>$increaseData['bond_id']],"id")){
                $this->update(['id'=>$z_id],$increaseData) && $number++;
            }else{
                $this->create($increaseData) && $number++;
            }
            unset($increaseData);
        }

        return $number;
    }

    //对插入的数据进行必要的处理
    private function handleIncreaseData(&$inData){
        //到期税前收益 去掉% 并保留2为小数
        $inData['ytm_rt'] = round(str_replace('%','',$inData['ytm_rt']),2);
        //溢价率处理
        $inData['premium_rt'] = round(str_replace('%','',$inData['premium_rt']),2);

        //简单的计算分数 当前溢价率 + 剩余时间 - 到期收益率
        $inData['score'] = round($inData['premium_rt']+$inData['year_left']-$inData['ytm_rt'] ,2);

        // 转债价格 + 溢价率 *100  值越小得分越高
        $inData['score2'] = round($inData['price']+$inData['premium_rt']*100 ,2);
    }

    //从原始数据中 获取我所需要的数据
    private function getValidData($originalData,$create_time){
        $item = $originalData['cell'];
        if(empty($item['bond_id'])) return ;
        $increaseData = [
            //可转债编号
            'bond_id'=>$item['bond_id'],
            //名称
            'bond_nm'=>$item['bond_nm'],
            //正股代码
            'stock_id'=>$item['stock_id'],
            //正股名称
            'stock_nm'=>$item['stock_nm'],
            //
            'btype'=>$item['btype'],
            //转股价
            'convert_price'=>$item['convert_price'],
            //转股开始时间
            'convert_dt'=>$item['convert_dt'],
            //转股截止日期
            'maturity_dt'=>$item['maturity_dt'],
            //回售开始时间
            'next_put_dt'=>$item['next_put_dt'],
            //面值价格
            'put_price'=>$item['put_price'],
            //卖出转股价格比例
            'put_convert_price_ratio'=>$item['put_convert_price_ratio'],
            //溢价率
            'premium_rt'=>$item['premium_rt'],
            //现价
            'price'=>$item['price'],
            //评级
            'rating_cd'=>$item['rating_cd'],
            //剩余时间
            'year_left'=>$item['year_left'],
            //剩余规模
            'orig_iss_amt'=>$item['orig_iss_amt'],
            //到期收益率
            'ytm_rt'=>$item['ytm_rt'],
            //当前状态
            'price_tips'=>$item['price_tips'],
            //双低
            'dblow'=>$item['dblow'],
            //加入时间
            'create_time'=>$create_time,
        ];

        return $increaseData;
    }

}